package com.xiye.system.service.menu;

import java.util.List;

import com.xiye.common.entity.Menu;
import com.xiye.common.entity.PageData;

/**
 * @author 西野
 * @version V1.0
 * @title MenuService.java
 * @package com.xiye.system.service.menu
 * @description 菜单处理接口
 * @date 2018-06-22
 */
public interface MenuService {

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 通过ID获取其子一级菜单
     * @Param [parentId]
     * @Return java.util.List<com.xiye.common.entity.Menu>
     */
    List<Menu> listSubMenuByParentId(String parentId);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 通过ID获取其子一级菜单
     * @Param [parentId]
     * @Return java.util.List<com.xiye.common.entity.Menu>
     */
    List<Menu> listByParentId(String parentId);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 通过菜单ID获取数据
     * @Param [pd]
     * @Return com.xiye.common.entity.PageData
     */
    PageData getMenuById(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 新增菜单
     * @Param [menu]
     * @Return void
     */
    void saveMenu(Menu menu);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 取最大ID
     * @Param [pd]
     * @Return com.xiye.common.entity.PageData
     */
    PageData findMaxId(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 删除菜单
     * @Param [MENU_ID]
     * @Return void
     */
    void deleteMenuById(String MENU_ID);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 编辑
     * @Param [menu]
     * @Return void
     */
    void edit(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 保存菜单图标
     * @Param [pd]
     * @Return com.xiye.common.entity.PageData
     */
    PageData editicon(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 获取所有菜单并填充每个菜单的子菜单列表(菜单管理)(递归处理)
     * @Param [MENU_ID]
     * @Return java.util.List<com.xiye.common.entity.Menu>
     */
    List<Menu> listAllMenu(String MENU_ID);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 获取所有菜单并填充每个菜单的子菜单列表(系统菜单列表)(递归处理)
     * @Param [MENU_ID]
     * @Return java.util.List<com.xiye.common.entity.Menu>
     */
    List<Menu> listAllMenuQx(String MENU_ID);
}
